package com.pureut.production.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.pureut.production.domain.LineStock;
import com.pureut.production.domain.dto.LineStockDto;
import com.pureut.production.domain.dto.LineStockInfoDto;
import com.pureut.production.domain.dto.LineStockSummaryDto;
import com.pureut.production.domain.vo.LineStockVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author hl
 **/
@Mapper
public interface LineStockMapper extends BaseMapper<LineStock> {

    /**
     * 查询线别库存
     *
     * @param lineStockVo
     * @return
     */
    List<LineStockDto> selectLineStockList(LineStockVo lineStockVo);

    /**
     * 新增线别库存
     *
     * @param lineStock
     * @return
     */
    int insertLineStock(LineStock lineStock);

    /**
     * 查询线别库存汇总
     *
     * @param lineStockVo
     * @return
     */
    List<LineStockSummaryDto> selectLineStockSummaryList(LineStockVo lineStockVo);

    /**
     * 查看当前物料号码信息
     */
    LineStock getView(String materialNumber);

    /**
     * 根据物料号码删除库存
     */
    int deleteByMaterialNumber(String materialNumber);

    /**
     * 根据物料号码获取线边库存数据（fegin调用）
     */
    LineStockDto getLineStockData(String materialNumber);


    /**
     * 查询线边仓数据（冻结列表查询 feign调用）
     */
    List<LineStockDto> getLineStockList(LineStockVo lineStockVo);

    /**
     * 水刺看板-线边库存信息
     *
     * @param lineCode
     * @return
     */
    List<LineStockInfoDto> getLineStockInfo(String lineCode);

    /**
     * 批量修改线边库存冻结状态
     */
    boolean updateDataByIds(@Param("ids") List<Long> ids, @Param("freeValue") int freeValue,@Param("materialGradeValue") int materialGradeValue);

    boolean deleteByWareAlCode(String wareAlCode);

    long selectMaterial(String warehouseCode);
}
